home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 October: Mac OS SDK / Dev.CD Oct 97 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / CIncludes / Components.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-08-12  |  17.8 KB  |  515 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        Components.h
  3.  
  4.      Contains:    Component Manager Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.0.1
  8.  
  9.      Copyright:    © 1991-1997 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. */
  18. #ifndef __COMPONENTS__
  19. #define __COMPONENTS__
  20.  
  21. #ifndef __ERRORS__
  22. #include <Errors.h>
  23. #endif
  24. #ifndef __TYPES__
  25. #include <Types.h>
  26. #endif
  27. #ifndef __MIXEDMODE__
  28. #include <MixedMode.h>
  29. #endif
  30.  
  31.  
  32.  
  33. #if PRAGMA_ONCE
  34. #pragma once
  35. #endif
  36.  
  37. #ifdef __cplusplus
  38. extern "C" {
  39. #endif
  40.  
  41. #if PRAGMA_IMPORT
  42. #pragma import on
  43. #endif
  44.  
  45. #if PRAGMA_STRUCT_ALIGN
  46.     #pragma options align=mac68k
  47. #elif PRAGMA_STRUCT_PACKPUSH
  48.     #pragma pack(push, 2)
  49. #elif PRAGMA_STRUCT_PACK
  50.     #pragma pack(2)
  51. #endif
  52.  
  53.  
  54. enum {
  55.     kAppleManufacturer            = FOUR_CHAR_CODE('appl'),        /* Apple supplied components */
  56.     kComponentResourceType        = FOUR_CHAR_CODE('thng')        /* a components resource type */
  57. };
  58.  
  59.  
  60. enum {
  61.     kAnyComponentType            = 0,
  62.     kAnyComponentSubType        = 0,
  63.     kAnyComponentManufacturer    = 0,
  64.     kAnyComponentFlagsMask        = 0
  65. };
  66.  
  67.  
  68. enum {
  69.     cmpWantsRegisterMessage        = 1L << 31
  70. };
  71.  
  72.  
  73. enum {
  74.     kComponentOpenSelect        = -1,                            /* ComponentInstance for this open */
  75.     kComponentCloseSelect        = -2,                            /* ComponentInstance for this close */
  76.     kComponentCanDoSelect        = -3,                            /* selector # being queried */
  77.     kComponentVersionSelect        = -4,                            /* no params */
  78.     kComponentRegisterSelect    = -5,                            /* no params */
  79.     kComponentTargetSelect        = -6,                            /* ComponentInstance for top of call chain */
  80.     kComponentUnregisterSelect    = -7,                            /* no params */
  81.     kComponentGetMPWorkFunctionSelect = -8                        /* some params */
  82. };
  83.  
  84. /* Component Resource Extension flags */
  85.  
  86. enum {
  87.     componentDoAutoVersion        = (1 << 0),
  88.     componentWantsUnregister    = (1 << 1),
  89.     componentAutoVersionIncludeFlags = (1 << 2),
  90.     componentHasMultiplePlatforms = (1 << 3)
  91. };
  92.  
  93.  
  94.  
  95. /* Set Default Component flags */
  96.  
  97. enum {
  98.     defaultComponentIdentical    = 0,
  99.     defaultComponentAnyFlags    = 1,
  100.     defaultComponentAnyManufacturer = 2,
  101.     defaultComponentAnySubType    = 4,
  102.     defaultComponentAnyFlagsAnyManufacturer = (defaultComponentAnyFlags + defaultComponentAnyManufacturer),
  103.     defaultComponentAnyFlagsAnyManufacturerAnySubType = (defaultComponentAnyFlags + defaultComponentAnyManufacturer + defaultComponentAnySubType)
  104. };
  105.  
  106. /* RegisterComponentResource flags */
  107.  
  108. enum {
  109.     registerComponentGlobal        = 1,
  110.     registerComponentNoDuplicates = 2,
  111.     registerComponentAfterExisting = 4
  112. };
  113.  
  114.  
  115. struct ComponentDescription {
  116.     OSType                             componentType;                /* A unique 4-byte code indentifying the command set */
  117.     OSType                             componentSubType;            /* Particular flavor of this instance */
  118.     OSType                             componentManufacturer;        /* Vendor indentification */
  119.     unsigned long                     componentFlags;                /* 8 each for Component,Type,SubType,Manuf/revision */
  120.     unsigned long                     componentFlagsMask;            /* Mask for specifying which flags to consider in search, zero during registration */
  121. };
  122. typedef struct ComponentDescription ComponentDescription;
  123.  
  124.  
  125. struct ResourceSpec {
  126.     OSType                             resType;                    /* 4-byte code  */
  127.     short                             resID;                        /*              */
  128. };
  129. typedef struct ResourceSpec ResourceSpec;
  130.  
  131. struct ComponentResource {
  132.     ComponentDescription             cd;                            /* Registration parameters */
  133.     ResourceSpec                     component;                    /* resource where Component code is found */
  134.     ResourceSpec                     componentName;                /* name string resource */
  135.     ResourceSpec                     componentInfo;                /* info string resource */
  136.     ResourceSpec                     componentIcon;                /* icon resource */
  137. };
  138. typedef struct ComponentResource ComponentResource;
  139.  
  140. typedef ComponentResource *                ComponentResourcePtr;
  141. typedef ComponentResourcePtr *            ComponentResourceHandle;
  142. struct ComponentPlatformInfo {
  143.     long                             componentFlags;                /* flags of Component */
  144.     ResourceSpec                     component;                    /* resource where Component code is found */
  145.     short                             platformType;                /* gestaltSysArchitecture result */
  146. };
  147. typedef struct ComponentPlatformInfo ComponentPlatformInfo;
  148.  
  149. struct ComponentResourceExtension {
  150.     long                             componentVersion;            /* version of Component */
  151.     long                             componentRegisterFlags;        /* flags for registration */
  152.     short                             componentIconFamily;        /* resource id of Icon Family */
  153. };
  154. typedef struct ComponentResourceExtension ComponentResourceExtension;
  155.  
  156. struct ComponentPlatformInfoArray {
  157.     long                             count;
  158.     ComponentPlatformInfo             platformArray[1];
  159. };
  160. typedef struct ComponentPlatformInfoArray ComponentPlatformInfoArray;
  161.  
  162. struct ExtComponentResource {
  163.     ComponentDescription             cd;                            /* registration parameters */
  164.     ResourceSpec                     component;                    /* resource where Component code is found */
  165.     ResourceSpec                     componentName;                /* name string resource */
  166.     ResourceSpec                     componentInfo;                /* info string resource */
  167.     ResourceSpec                     componentIcon;                /* icon resource */
  168.     long                             componentVersion;            /* version of Component */
  169.     long                             componentRegisterFlags;        /* flags for registration */
  170.     short                             componentIconFamily;        /* resource id of Icon Family */
  171.     long                             count;                        /* elements in platformArray */
  172.     ComponentPlatformInfo             platformArray[1];
  173. };
  174. typedef struct ExtComponentResource ExtComponentResource;
  175.  
  176. /*  Structure received by Component:        */
  177. struct ComponentParameters {
  178.     UInt8                             flags;                        /* call modifiers: sync/async, deferred, immed, etc */
  179.     UInt8                             paramSize;                    /* size in bytes of actual parameters passed to this call */
  180.     short                             what;                        /* routine selector, negative for Component management calls */
  181.     long                             params[1];                    /* actual parameters for the indicated routine */
  182. };
  183. typedef struct ComponentParameters ComponentParameters;
  184.  
  185. struct ComponentRecord {
  186.     long                             data[1];
  187. };
  188. typedef struct ComponentRecord ComponentRecord;
  189.  
  190. typedef ComponentRecord *                Component;
  191. struct ComponentInstanceRecord {
  192.     long                             data[1];
  193. };
  194. typedef struct ComponentInstanceRecord ComponentInstanceRecord;
  195.  
  196. typedef ComponentInstanceRecord *        ComponentInstance;
  197. struct RegisteredComponentRecord {
  198.     long                             data[1];
  199. };
  200. typedef struct RegisteredComponentRecord RegisteredComponentRecord;
  201.  
  202. struct RegisteredComponentInstanceRecord {
  203.     long                             data[1];
  204. };
  205. typedef struct RegisteredComponentInstanceRecord RegisteredComponentInstanceRecord;
  206.  
  207. typedef RegisteredComponentInstanceRecord * RegisteredComponentInstanceRecordPtr;
  208. typedef long                             ComponentResult;
  209.  
  210. enum {
  211.     mpWorkFlagDoWork            = (1 << 0),
  212.     mpWorkFlagDoCompletion        = (1 << 1),
  213.     mpWorkFlagCopyWorkBlock        = (1 << 2),
  214.     mpWorkFlagDontBlock            = (1 << 3),
  215.     mpWorkFlagGetProcessorCount    = (1 << 4),
  216.     mpWorkFlagGetIsRunning        = (1 << 6)
  217. };
  218.  
  219. struct ComponentMPWorkFunctionHeaderRecord {
  220.     UInt32                             headerSize;
  221.     UInt32                             recordSize;
  222.     UInt32                             workFlags;
  223.     UInt16                             processorCount;
  224.     UInt8                             unused;
  225.     UInt8                             isRunning;
  226. };
  227. typedef struct ComponentMPWorkFunctionHeaderRecord ComponentMPWorkFunctionHeaderRecord;
  228.  
  229. typedef ComponentMPWorkFunctionHeaderRecord * ComponentMPWorkFunctionHeaderRecordPtr;
  230. typedef CALLBACK_API( ComponentResult , ComponentMPWorkFunctionProcPtr )(void *globalRefCon, ComponentMPWorkFunctionHeaderRecordPtr header);
  231. typedef CALLBACK_API( ComponentResult , ComponentRoutineProcPtr )(ComponentParameters *cp, Handle componentStorage);
  232. typedef STACK_UPP_TYPE(ComponentMPWorkFunctionProcPtr)             ComponentMPWorkFunctionUPP;
  233. typedef STACK_UPP_TYPE(ComponentRoutineProcPtr)                 ComponentRoutineUPP;
  234. /*
  235.     The parameter list for each ComponentFunction is unique. It is
  236.     therefore up to users to create the appropriate procInfo for their
  237.     own ComponentFunctions where necessary.
  238. */
  239. typedef UniversalProcPtr                 ComponentFunctionUPP;
  240. #if TARGET_RT_MAC_CFM
  241. /* 
  242.     CallComponentUPP is a global variable exported from InterfaceLib.
  243.     It is the ProcPtr passed to CallUniversalProc to manually call a component function.
  244. */
  245. extern UniversalProcPtr CallComponentUPP;
  246. #endif
  247.  
  248. #define ComponentCallNow( callNumber, paramSize ) \
  249.     FIVEWORDINLINE( 0x2F3C,paramSize,callNumber,0x7000,0xA82A )
  250.  
  251. /********************************************************
  252. *                                                        *
  253. *                  APPLICATION LEVEL CALLS                    *
  254. *                                                        *
  255. ********************************************************/
  256. /********************************************************
  257. * Component Database Add, Delete, and Query Routines
  258. ********************************************************/
  259. EXTERN_API( Component )
  260. RegisterComponent                (ComponentDescription *    cd,
  261.                                  ComponentRoutineUPP     componentEntryPoint,
  262.                                  short                     global,
  263.                                  Handle                 componentName,
  264.                                  Handle                 componentInfo,
  265.                                  Handle                 componentIcon)                        TWOWORDINLINE(0x7001, 0xA82A);
  266.  
  267. EXTERN_API( Component )
  268. RegisterComponentResource        (ComponentResourceHandle  cr,
  269.                                  short                     global)                                TWOWORDINLINE(0x7012, 0xA82A);
  270.  
  271. EXTERN_API( OSErr )
  272. UnregisterComponent                (Component                 aComponent)                            TWOWORDINLINE(0x7002, 0xA82A);
  273.  
  274. EXTERN_API( Component )
  275. FindNextComponent                (Component                 aComponent,
  276.                                  ComponentDescription *    looking)                            TWOWORDINLINE(0x7004, 0xA82A);
  277.  
  278. EXTERN_API( long )
  279. CountComponents                    (ComponentDescription *    looking)                            TWOWORDINLINE(0x7003, 0xA82A);
  280.  
  281. EXTERN_API( OSErr )
  282. GetComponentInfo                (Component                 aComponent,
  283.                                  ComponentDescription *    cd,
  284.                                  Handle                 componentName,
  285.                                  Handle                 componentInfo,
  286.                                  Handle                 componentIcon)                        TWOWORDINLINE(0x7005, 0xA82A);
  287.  
  288. EXTERN_API( long )
  289. GetComponentListModSeed            (void)                                                        TWOWORDINLINE(0x7006, 0xA82A);
  290.  
  291. EXTERN_API( long )
  292. GetComponentTypeModSeed            (OSType                 componentType)                        TWOWORDINLINE(0x702C, 0xA82A);
  293.  
  294. /********************************************************
  295. * Component Instance Allocation and dispatch routines
  296. ********************************************************/
  297. EXTERN_API( OSErr )
  298. OpenAComponent                    (Component                 aComponent,
  299.                                  ComponentInstance *    ci)                                    TWOWORDINLINE(0x702D, 0xA82A);
  300.  
  301. EXTERN_API( ComponentInstance )
  302. OpenComponent                    (Component                 aComponent)                            TWOWORDINLINE(0x7007, 0xA82A);
  303.  
  304. EXTERN_API( OSErr )
  305. CloseComponent                    (ComponentInstance         aComponentInstance)                    TWOWORDINLINE(0x7008, 0xA82A);
  306.  
  307. EXTERN_API( OSErr )
  308. GetComponentInstanceError        (ComponentInstance         aComponentInstance)                    TWOWORDINLINE(0x700A, 0xA82A);
  309.  
  310. /********************************************************
  311. *                                                        *
  312. *                      CALLS MADE BY COMPONENTS              *
  313. *                                                        *
  314. ********************************************************/
  315. /********************************************************
  316. * Component Management routines
  317. ********************************************************/
  318. EXTERN_API( void )
  319. SetComponentInstanceError        (ComponentInstance         aComponentInstance,
  320.                                  OSErr                     theError)                            TWOWORDINLINE(0x700B, 0xA82A);
  321.  
  322. EXTERN_API( long )
  323. GetComponentRefcon                (Component                 aComponent)                            TWOWORDINLINE(0x7010, 0xA82A);
  324.  
  325. EXTERN_API( void )
  326. SetComponentRefcon                (Component                 aComponent,
  327.                                  long                     theRefcon)                            TWOWORDINLINE(0x7011, 0xA82A);
  328.  
  329. EXTERN_API( short )
  330. OpenComponentResFile            (Component                 aComponent)                            TWOWORDINLINE(0x7015, 0xA82A);
  331.  
  332. EXTERN_API( OSErr )
  333. OpenAComponentResFile            (Component                 aComponent,
  334.                                  short *                resRef)                                TWOWORDINLINE(0x702F, 0xA82A);
  335.  
  336. EXTERN_API( OSErr )
  337. CloseComponentResFile            (short                     refnum)                                TWOWORDINLINE(0x7018, 0xA82A);
  338.  
  339. /********************************************************
  340. * Component Instance Management routines
  341. ********************************************************/
  342. EXTERN_API( Handle )
  343. GetComponentInstanceStorage        (ComponentInstance         aComponentInstance)                    TWOWORDINLINE(0x700C, 0xA82A);
  344.  
  345. EXTERN_API( void )
  346. SetComponentInstanceStorage        (ComponentInstance         aComponentInstance,
  347.                                  Handle                 theStorage)                            TWOWORDINLINE(0x700D, 0xA82A);
  348.  
  349. EXTERN_API( long )
  350. GetComponentInstanceA5            (ComponentInstance         aComponentInstance)                    TWOWORDINLINE(0x700E, 0xA82A);
  351.  
  352. EXTERN_API( void )
  353. SetComponentInstanceA5            (ComponentInstance         aComponentInstance,
  354.                                  long                     theA5)                                TWOWORDINLINE(0x700F, 0xA82A);
  355.  
  356. EXTERN_API( long )
  357. CountComponentInstances            (Component                 aComponent)                            TWOWORDINLINE(0x7013, 0xA82A);
  358.  
  359. /* useful helper routines for convenient method dispatching */
  360. EXTERN_API( long )
  361. CallComponentFunction            (ComponentParameters *    params,
  362.                                  ComponentFunctionUPP     func)                                TWOWORDINLINE(0x70FF, 0xA82A);
  363.  
  364. EXTERN_API( long )
  365. CallComponentFunctionWithStorage (Handle                 storage,
  366.                                  ComponentParameters *    params,
  367.                                  ComponentFunctionUPP     func)                                TWOWORDINLINE(0x70FF, 0xA82A);
  368.  
  369. #if TARGET_CPU_PPC
  370. EXTERN_API( long )
  371. CallComponentFunctionWithStorageProcInfo (Handle         storage,
  372.                                  ComponentParameters *    params,
  373.                                  ProcPtr                 func,
  374.                                  long                     funcProcInfo);
  375.  
  376. #else
  377. #define CallComponentFunctionWithStorageProcInfo(storage, params, func, funcProcInfo ) CallComponentFunctionWithStorage(storage, params, func)
  378.  
  379. #endif  /* TARGET_CPU_PPC */
  380.  
  381. EXTERN_API( long )
  382. DelegateComponentCall            (ComponentParameters *    originalParams,
  383.                                  ComponentInstance         ci)                                    TWOWORDINLINE(0x7024, 0xA82A);
  384.  
  385. EXTERN_API( OSErr )
  386. SetDefaultComponent                (Component                 aComponent,
  387.                                  short                     flags)                                TWOWORDINLINE(0x701E, 0xA82A);
  388.  
  389. EXTERN_API( ComponentInstance )
  390. OpenDefaultComponent            (OSType                 componentType,
  391.                                  OSType                 componentSubType)                    TWOWORDINLINE(0x7021, 0xA82A);
  392.  
  393. EXTERN_API( OSErr )
  394. OpenADefaultComponent            (OSType                 componentType,
  395.                                  OSType                 componentSubType,
  396.                                  ComponentInstance *    ci)                                    TWOWORDINLINE(0x702E, 0xA82A);
  397.  
  398. EXTERN_API( Component )
  399. CaptureComponent                (Component                 capturedComponent,
  400.                                  Component                 capturingComponent)                    TWOWORDINLINE(0x701C, 0xA82A);
  401.  
  402. EXTERN_API( OSErr )
  403. UncaptureComponent                (Component                 aComponent)                            TWOWORDINLINE(0x701D, 0xA82A);
  404.  
  405. EXTERN_API( long )
  406. RegisterComponentResourceFile    (short                     resRefNum,
  407.                                  short                     global)                                TWOWORDINLINE(0x7014, 0xA82A);
  408.  
  409. EXTERN_API( OSErr )
  410. GetComponentIconSuite            (Component                 aComponent,
  411.                                  Handle *                iconSuite)                            TWOWORDINLINE(0x7029, 0xA82A);
  412.  
  413.  
  414. /********************************************************
  415. *                                                        *
  416. *              Direct calls to the Components                *
  417. *                                                        *
  418. ********************************************************/
  419. /* Old style names*/
  420.  
  421. EXTERN_API( long )
  422. ComponentFunctionImplemented    (ComponentInstance         ci,
  423.                                  short                     ftnNumber)                            FIVEWORDINLINE(0x2F3C, 0x0002, 0xFFFD, 0x7000, 0xA82A);
  424.  
  425. EXTERN_API( long )
  426. GetComponentVersion                (ComponentInstance         ci)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0xFFFC, 0x7000, 0xA82A);
  427.  
  428. EXTERN_API( long )
  429. ComponentSetTarget                (ComponentInstance         ci,
  430.                                  ComponentInstance         target)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0xFFFA, 0x7000, 0xA82A);
  431.  
  432. /* New style names*/
  433.  
  434. EXTERN_API( ComponentResult )
  435. CallComponentOpen                (ComponentInstance         ci,
  436.                                  ComponentInstance         self)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0xFFFF, 0x7000, 0xA82A);
  437.  
  438. EXTERN_API( ComponentResult )
  439. CallComponentClose                (ComponentInstance         ci,
  440.                                  ComponentInstance         self)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0xFFFE, 0x7000, 0xA82A);
  441.  
  442. EXTERN_API( ComponentResult )
  443. CallComponentCanDo                (ComponentInstance         ci,
  444.                                  short                     ftnNumber)                            FIVEWORDINLINE(0x2F3C, 0x0002, 0xFFFD, 0x7000, 0xA82A);
  445.  
  446. EXTERN_API( ComponentResult )
  447. CallComponentVersion            (ComponentInstance         ci)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0xFFFC, 0x7000, 0xA82A);
  448.  
  449. EXTERN_API( ComponentResult )
  450. CallComponentRegister            (ComponentInstance         ci)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0xFFFB, 0x7000, 0xA82A);
  451.  
  452. EXTERN_API( ComponentResult )
  453. CallComponentTarget                (ComponentInstance         ci,
  454.                                  ComponentInstance         target)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0xFFFA, 0x7000, 0xA82A);
  455.  
  456. EXTERN_API( ComponentResult )
  457. CallComponentUnregister            (ComponentInstance         ci)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0xFFF9, 0x7000, 0xA82A);
  458.  
  459. EXTERN_API( ComponentResult )
  460. CallComponentGetMPWorkFunction    (ComponentInstance         ci,
  461.                                  ComponentMPWorkFunctionUPP * workFunction,
  462.                                  void **                refCon)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0xFFF8, 0x7000, 0xA82A);
  463.  
  464.  
  465. /* UPP call backs */
  466. enum { uppComponentMPWorkFunctionProcInfo = 0x000003F0 };         /* pascal 4_bytes Func(4_bytes, 4_bytes) */
  467. enum { uppComponentRoutineProcInfo = 0x000003F0 };                 /* pascal 4_bytes Func(4_bytes, 4_bytes) */
  468. #define NewComponentMPWorkFunctionProc(userRoutine)             (ComponentMPWorkFunctionUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppComponentMPWorkFunctionProcInfo, GetCurrentArchitecture())
  469. #define NewComponentRoutineProc(userRoutine)                     (ComponentRoutineUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppComponentRoutineProcInfo, GetCurrentArchitecture())
  470. #define CallComponentMPWorkFunctionProc(userRoutine, globalRefCon, header)  CALL_TWO_PARAMETER_UPP((userRoutine), uppComponentMPWorkFunctionProcInfo, (globalRefCon), (header))
  471. #define CallComponentRoutineProc(userRoutine, cp, componentStorage)  CALL_TWO_PARAMETER_UPP((userRoutine), uppComponentRoutineProcInfo, (cp), (componentStorage))
  472. /* ProcInfos */
  473.  
  474. /* MixedMode ProcInfo constants for component calls */
  475. enum {
  476.     uppComponentFunctionImplementedProcInfo            = 0x000002F0,
  477.     uppGetComponentVersionProcInfo                    = 0x000000F0,
  478.     uppComponentSetTargetProcInfo                    = 0x000003F0,
  479.     uppCallComponentOpenProcInfo                    = 0x000003F0,
  480.     uppCallComponentCloseProcInfo                    = 0x000003F0,
  481.     uppCallComponentCanDoProcInfo                    = 0x000002F0,
  482.     uppCallComponentVersionProcInfo                    = 0x000000F0,
  483.     uppCallComponentRegisterProcInfo                = 0x000000F0,
  484.     uppCallComponentTargetProcInfo                    = 0x000003F0,
  485.     uppCallComponentUnregisterProcInfo                = 0x000000F0,
  486.     uppCallComponentGetMPWorkFunctionProcInfo        = 0x00000FF0
  487. };
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495. #if PRAGMA_STRUCT_ALIGN
  496.     #pragma options align=reset
  497. #elif PRAGMA_STRUCT_PACKPUSH
  498.     #pragma pack(pop)
  499. #elif PRAGMA_STRUCT_PACK
  500.     #pragma pack()
  501. #endif
  502.  
  503. #ifdef PRAGMA_IMPORT_OFF
  504. #pragma import off
  505. #elif PRAGMA_IMPORT
  506. #pragma import reset
  507. #endif
  508.  
  509. #ifdef __cplusplus
  510. }
  511. #endif
  512.  
  513. #endif /* __COMPONENTS__ */
  514.  
  515.